Many applications, which may be Internet applications, business applications, end user applications, etc., are comprised of multiple software modules that perform different functions. For example, an online shopping application may have multiple modules for performing the functions of checking out of a shopping cart. These modules may include a payment module, a validation module and a cart module.
To deploy these modules on a computer system, these modules are created and put together into a deployable package. A deployable package may include a collection of files used to create or update an application. The collection of files may include an executable file and other information that is loaded onto a server or other computer systems. When the executable file is executed, the application, including the modules, may be created or updated.
During the application development phase, the deployable package is built many times and tested. The building of the deployment package can be time consuming and complicated, especially for large applications with many modules and other components. Typically, a developer manually writes or modifies a build script each time there are changes in an application component's dependency or other changes. A build script identifies information, such as dependencies between modules and other information for creating the deployment package. The build script is then used by a conventional build tool to generate the deployment package based on the build script. Manually determining the dependencies between modules and creating or modifying the build script each time the deployment package needs to be created for testing tends to become labor intensive and complex and prone to errors.